iT邦幫忙

2022 iThome 鐵人賽

DAY 2
2
Software Development

QA工程師的美麗與哀愁系列 第 2

第一卷 - 自動化測試是QA必要之惡?

  • 分享至 

  • xImage
  •  

常聽到的測試手段,可以簡單分為手動測試(Manual testing)與自動測試(Automation testing)

舉個簡單的例子,今天RD做出了一個可以用Email註冊與登入會員的網頁。

QA針對功能的手動測試就是打開網頁,先手動輸入一組帳號密碼註冊帳號,再用剛註冊的這個帳號登入會員網頁。

這件事非常的單純,所以手動測試可能一下子就可以把註冊跟登入兩個功能驗證完成。

但是當待測目標變成一個複雜的電商網站的時候,功能測試就會產生各種不同場景交錯的組合。

這個網站可能有多種註冊與登入的方法(FB, Google, Email),

購物車加入五件商品,移出一件商品,可不可以使用滿千送百的折價卷,運費減免,要不要打公司統編等等。

一個我們很常在網路上看到的電商網站,其實使用者每個不同的操作,都需要做功能與各種驗證。

那你就會想,這些不同的使用者行為,要怎麼都用手動測試到?

答案是:沒辦法XD

所以我們才會需要自動化測試。


自動化的價值是把重複性高的驗證工作交給程式或工具完成,讓團隊可以專注在更重要的事情上。

在開發過程中,我們會有原本產品既有的舊功能,也會有要新增的新功能。

QA的工作目標,常常會是同時要確保新功能可以正常運作,同時也要驗證所有舊功能也都正常。

那聰明的你一定會發現,隨著產品開發持續,新功能肯定是越來越多,

同樣只有兩個禮拜測試時間,怎麼把越來越多的功能全部測試完成?

這時候你能做的就是把舊的功能用自動化測試完成。

例如利用Selenium + Robotframework可以用程式模擬使用者在網頁UI上面的操作等等


同時你也會問,為什麼不在新功能開發階段就把自動化一起做好?

但這是一個理想的狀態,一個新的功能可能在開發階段會因為各種原因頻繁的修改,

導致你在開發中期做的自動化測試,到了開發收尾的時候都變得無效,就像是做白工一樣。

所以自動化測試很需要看目的跟時機去做,這都是QA這個角色要去評估與提出自己意見的地方


還有一個常聽到的金句:

全部都做自動化就好啦,不需要手動測試的QA啦!

主要考量是除了有些產品性質不容易套用工具做測試(包含硬體或設備測試)

你可能需要會花很多時間去客製化測試程式來符合需求,有時候手動測試反而更能完整的完成測試。

自動化測試確實有他的價值在,但不可否認的是手動測試也是有很深的學問在裡面。

包含之後會提到的測試策略(test strategy)與測試計畫(test plan)的訂定

很多資深QA,他們的測試經驗跟直覺,可以很快地抓到這個新功能在哪裡可能會出問題

甚至是在Design review時就可以指出某些設計架構,長期來看會把測試複雜度提高等等

而這些QA的技術,我覺得也都需要經過手動測試的訓練來磨練經驗與直覺

很多東西你一定要下去做,才會知道一些眉眉角角。

自動化測試是把你知道的答案,告訴程式來驗證產品預期的Input跟Output

而手動測試很多時候是在黑暗中前進並探索未知


下一篇來聊聊近幾年很紅的探索性測試(Exploratory testing)


上一篇
第零卷 - QA工程師參上!
下一篇
第二卷 - 擁抱敏捷思維的探索性測試 vs 傳統腳本測試
系列文
QA工程師的美麗與哀愁30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言